__init__.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # coding: utf-8
  2. from ._version import version
  3. from .exceptions import *
  4. from .ext import ExtType, Timestamp
  5. import os
  6. import sys
  7. if os.environ.get("MSGPACK_PUREPYTHON") or sys.version_info[0] == 2:
  8. from .fallback import Packer, unpackb, Unpacker
  9. else:
  10. try:
  11. from ._cmsgpack import Packer, unpackb, Unpacker
  12. except ImportError:
  13. from .fallback import Packer, unpackb, Unpacker
  14. def pack(o, stream, **kwargs):
  15. """
  16. Pack object `o` and write it to `stream`
  17. See :class:`Packer` for options.
  18. """
  19. packer = Packer(**kwargs)
  20. stream.write(packer.pack(o))
  21. def packb(o, **kwargs):
  22. """
  23. Pack object `o` and return packed bytes
  24. See :class:`Packer` for options.
  25. """
  26. return Packer(**kwargs).pack(o)
  27. def unpack(stream, **kwargs):
  28. """
  29. Unpack an object from `stream`.
  30. Raises `ExtraData` when `stream` contains extra bytes.
  31. See :class:`Unpacker` for options.
  32. """
  33. data = stream.read()
  34. return unpackb(data, **kwargs)
  35. # alias for compatibility to simplejson/marshal/pickle.
  36. load = unpack
  37. loads = unpackb
  38. dump = pack
  39. dumps = packb